// 导入vue
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);

// 我们之前封装了专门读取和保存localstoreage的方法
import { setToken, getToken, removeToken } from "../utils/storage";

// 实例化一个store（vuex仓库）
const store = new Vuex.Store({
  state: {
    //token
    token: getToken() || {},
    // 用户信息
    userInfo: {},
    isshow: false,     //是否显示频道管理组件
  },
  // 提供操作数据的方法
  mutations: {
    saveToken(state, tokenObj) {
      //  把token保存到localstorage中
      setToken(tokenObj);
      //   把token保存在vuex的数据中
      state.token = tokenObj;
    },
    clearAllInfo(state) {
      // 删除本地存储里的token ，记得先导入这个函数
      removeToken();
      // 删除vuex里的token
      state.token = {};
      // 删除vuex里的用户信息
      state.userInfo = {};
    },
    saveUserInfo(state, userInfo) {
      state.userInfo = userInfo;
    },
  },
});
export default store;
